home *** CD-ROM | disk | FTP | other *** search
/ Adobe Digital Video Collection / Digital Video Collection CD.iso / After Effects 5.5 / MMScriptFre.Cab / F115605_spring.mm < prev    next >
Encoding:
Text File  |  2001-12-07  |  1.3 KB  |  40 lines

  1. // Ressort - version 1.2
  2.  
  3. // Ce script relie les calques 1 et 2 par un ressort. Le calque 1 conserve son mouvement
  4. // d'origine et le calque 2 se dΘplace comme s'il lui Θtait attachΘ au moyen d'un ressort.
  5.  
  6. //      CALQUE                                    PROPRIETE                  DIMENSION
  7. //      -------                                    ----------                  ---------- 
  8. // 1: Calque en mouvement                indiffΘrent                   indiffΘrent
  9. // 2: Calque attachΘ par un ressort    indiffΘrent                   indiffΘrent
  10.  
  11.  
  12. if (time() == start_time) {
  13.    rest_length = 10;                            // Longueur du ressort au repos, en pixels
  14.    damp = 0.95;                                        // Frottements (0 = infinis, 1 = nuls)
  15.  
  16.     p1 = value(pop_layer(1), position);
  17.     p2 = value(pop_layer(2), position);
  18.  
  19.     last_p1 = tmap(time() - step_time, value(pop_layer(1), position));
  20.     last_p2 = tmap(time() - step_time, value(pop_layer(2), position)); 
  21.  
  22.     v1 = (p1 - last_p1);
  23.     v2 = (p2 - last_p2);
  24. } else {
  25.     p1 = value(pop_layer(1), position);
  26.  
  27.     delta = p2 - p1;
  28.     n_delta = normalize(delta);
  29.  
  30.     a = 2 * n_delta * (length(delta) - rest_length) * step_time;
  31.  
  32.     v2 = (v2 - a) * damp;
  33.     v1 = (v1 + a) * damp;
  34.  
  35.     p1 = p1 + v1;
  36.     p2 = p2 + v2;
  37. }
  38. value(pop_layer(2), position) = p2;
  39.  
  40.